﻿using SanJ.FreeCare.Abp.Authorization.Users;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Services;

namespace SanJ.FreeCare.Authorization.Delegation
{
    public interface IUserDelegationManager : IDomainService
    {
        Task<bool> HasActiveDelegationAsync(Guid sourceUserId, Guid targetUserId);

        Task<bool> HasActiveDelegation(Guid sourceUserId, Guid targetUserId);

        Task RemoveDelegationAsync(Guid userDelegationId, UserIdentifier currentUser);

        Task<UserDelegation> GetAsync(Guid userDelegationId);
    }
}
